package com.ctshk.rpc.order.train.dto;

import com.ctshk.rpc.train.dto.h5.TrainProductH5DTO;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.util.List;

/**
 * <p>
 * 火车票订单表
 * </p>
 *
 * @author 彭柳霖
 * @since 2021-03-17
 */
@Data
@ApiModel(value="TrainOrderDetailAppDTO对象")
public class TrainOrderDetailAppDTO implements Serializable {

    private static final long serialVersionUID = 1L;

    @ApiModelProperty(value = "订单id")
    private Long id;

    @ApiModelProperty(value = "销售单号")
    private String orderNumber;

    @ApiModelProperty(value = "查询编号")
    private String inquiryNumber;

    @JsonFormat(pattern = "yyyy-MM-dd")
    @ApiModelProperty(value = "出发日期")
    private LocalDateTime effectiveTime;

    @ApiModelProperty(value = "购买数量")
    private Integer number;

    @ApiModelProperty(value = "订单金额")
    private BigDecimal orderAmount;

    @ApiModelProperty(value = "付款状态")
    private Integer paymentStatus;

    @ApiModelProperty(value = "付款状态名称")
    private String paymentStatusName;

    @ApiModelProperty(value = "预订状态")
    private Integer scheduledStatus;

    @ApiModelProperty(value = "预订状态名称")
    private String scheduledStatusName;

    @ApiModelProperty(value = "取消状态")
    private Integer cancelStatus;

    @ApiModelProperty(value = "取消状态名称")
    private String cancelStatusName;

    @ApiModelProperty(value = "来源")
    private Integer source;

    @ApiModelProperty(value = "来源名称")
    private String sourceName;

    @ApiModelProperty(value = "联系人姓")
    private String surname;

    @ApiModelProperty(value = "联系人名")
    private String name;

    @ApiModelProperty(value = "联系人姓名")
    private String contactName;

    @ApiModelProperty(value = "联系人手机")
    private String contactMobile;

    @ApiModelProperty(value = "联系人手机区号id")
    private Long contactMobileAreaCodeId;

    @ApiModelProperty(value = "联系人手机区号")
    private String contactMobileAreaCode;

    @ApiModelProperty(value = "联系人邮箱")
    private String contactEmail;

    @ApiModelProperty(value = "付款到期时间")
    private LocalDateTime payExpireDate;

    @JsonFormat(timezone = "GMT+8", pattern = "HH:mm")
    @ApiModelProperty(value = "出发时间")
    private LocalDateTime departureTime;

    @ApiModelProperty(value = "创建时间")
    private LocalDateTime gtmCreate;

    @ApiModelProperty(value = "订单状态，1：待付款；2：待预订；3：预订成功；4：预订失败；")
    private Integer orderStatus;

    @ApiModelProperty(value = "预订须知")
    private String bookingInformation;

    @ApiModelProperty(value = "备注")
    private String remark;

    @ApiModelProperty(value = "支付方式")
    private String paymentMethod;

    @ApiModelProperty(value = "支付时间")
    private LocalDateTime paymentDateTime;

    @ApiModelProperty(value = "查询单号")
    private String queryNumber;

    @ApiModelProperty(value = "席位等级id")
    private Long seatLevelId;

    @ApiModelProperty(value = "席位等级名称")
    private String seatLevelName;

    @ApiModelProperty(value = "火车订单旅客信息")
    private List<TrainOrderTouristAppDTO> trainOrderTouristDTOList;

    @ApiModelProperty(value = "产品信息")
    private TrainProductH5DTO trainProductH5DTO;


}
